package com.xique.park.bean.transform.web.passAuth;

import com.xique.common.core.utils.SecurityUtils;
import com.xique.park.bean.domain.ParkCarMngtypeLane;
import com.xique.park.bean.vo.web.passAuth.PassAuthVo;

/**
 * 通行权限转化类
 */
public class PassAuthTransform {

    /**
     * 数据库实体转化为前端vo
     * @param mngtypeLane
     * @return
     */
    public static PassAuthVo mngTypeLaneTransformVo(ParkCarMngtypeLane mngtypeLane){
        PassAuthVo passAuthVo = new PassAuthVo();
        passAuthVo.setId(mngtypeLane.getId());
        passAuthVo.setLaneId(Long.parseLong(mngtypeLane.getLaneId()));
        passAuthVo.setPassAuth(mngtypeLane.getPassAuth());
        passAuthVo.setPassAuthFullspace(mngtypeLane.getPassAuthFullspace());
        passAuthVo.setPassAuthMult(mngtypeLane.getPassAuthMult());
        passAuthVo.setPassAuthNorecord(mngtypeLane.getPassAuthNorecord());
        passAuthVo.setPassAuthNosense(mngtypeLane.getPassAuthNorecord());
        passAuthVo.setPassAuthNostart(mngtypeLane.getPassAuthNostart());
        passAuthVo.setPassAuthOverdue(mngtypeLane.getPassAuthOverdue());
        passAuthVo.setPassAuthPause(mngtypeLane.getPassAuthPause());
        passAuthVo.setPassAuthOutduration(mngtypeLane.getPassAuthOutduration());
        passAuthVo.setPassAuthZeroout(mngtypeLane.getPassAuthZeroout());
        passAuthVo.setPassDuration(mngtypeLane.getPassDuration());
        passAuthVo.setDeviceOffline(mngtypeLane.getDeviceOffline());
        return passAuthVo;
    }

    /**
     * 默认的通行权限封装
     * TODO 默认值需要重新整理，暂时先赋值为1，需要和设备端默认值保持一致
     * @return
     */
    public static PassAuthVo generateDefaultMngTypeLane(Long laneId){
        PassAuthVo passAuthVo = new PassAuthVo();
        passAuthVo.setLaneId(laneId);
        passAuthVo.setPassAuth("1");
        passAuthVo.setPassAuthFullspace("1");
        passAuthVo.setPassAuthMult("1");
        passAuthVo.setPassAuthNorecord("1");
        passAuthVo.setPassAuthNosense("1");
        passAuthVo.setPassAuthNostart("3");
        passAuthVo.setPassAuthOverdue("3");
        passAuthVo.setPassAuthPause("3");
        passAuthVo.setPassAuthOutduration("3");
        passAuthVo.setPassAuthZeroout("1");
        passAuthVo.setPassDuration("00:00-24:00");
        passAuthVo.setDeviceOffline("1");
        return passAuthVo;
    }

    /**
     * 前端VO实体转化为数据库实体
     * @param passAuthVo
     * @param mngTypeId
     * @return
     */
    public static ParkCarMngtypeLane voTransformMngTypeLane(PassAuthVo passAuthVo,Long mngTypeId){
        ParkCarMngtypeLane mngtypeLane = new ParkCarMngtypeLane();
        mngtypeLane.setParkId(SecurityUtils.getParkId());
        mngtypeLane.setId(passAuthVo.getId());
        mngtypeLane.setCarMngtypeId(mngTypeId);
        mngtypeLane.setLaneId(String.valueOf(passAuthVo.getLaneId()));
        mngtypeLane.setPassAuth(passAuthVo.getPassAuth());
        mngtypeLane.setPassAuthFullspace(passAuthVo.getPassAuthFullspace());
        mngtypeLane.setPassAuthMult(passAuthVo.getPassAuthMult());
        mngtypeLane.setPassAuthNorecord(passAuthVo.getPassAuthNorecord());
        mngtypeLane.setPassAuthNosense(passAuthVo.getPassAuthNosense());
        mngtypeLane.setPassAuthNostart(passAuthVo.getPassAuthNostart());
        mngtypeLane.setPassAuthOverdue(passAuthVo.getPassAuthOverdue());
        mngtypeLane.setPassAuthPause(passAuthVo.getPassAuthPause());
        mngtypeLane.setPassAuthOutduration(passAuthVo.getPassAuthOutduration());
        mngtypeLane.setPassAuthZeroout(passAuthVo.getPassAuthZeroout());
        mngtypeLane.setPassDuration(passAuthVo.getPassDuration());
        mngtypeLane.setDeviceOffline(passAuthVo.getDeviceOffline());
        return mngtypeLane;
    }
}
